package l.com.qqdemo;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.LinearLayout;

/**
 * todo 当slideMenu打开的时候，拦截并消费掉触摸事件
 * fixme 解决的问题是当打开菜单时主面板的listview还可以进行触摸,所以要拦截掉
 * @author Administrator
 * 
 */
public class InterceptLinearLayout extends LinearLayout {
	public InterceptLinearLayout(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}
	public InterceptLinearLayout(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public InterceptLinearLayout(Context context) {
		super(context);
	}
	private SlidMenu slideMenu;
	public void setSlideMenu(SlidMenu slideMenu){
		this.slideMenu = slideMenu;
	}
	@Override
	public boolean onInterceptTouchEvent(MotionEvent ev) {
		if(slideMenu!=null && slideMenu.getCurrentState()== SlidMenu.DragState.Open){
			//fixme 如果slideMenu打开则应该拦截并消费掉事件
			return true;
		}
		return super.onInterceptTouchEvent(ev);
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		if(slideMenu!=null && slideMenu.getCurrentState()== SlidMenu.DragState.Open){
			if(event.getAction()==MotionEvent.ACTION_UP){
				//fixme 抬起则应该关闭slideMenu
				slideMenu.close();
			}

			//fixme 如果slideMenu打开则应该拦截并消费掉事件
			return true;
		}
		return super.onTouchEvent(event);
	}
}
